package LeetCode.interview;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import LeetCode.interview._104_Maximum_Depth_of_Binary_Tree.TreeNode;

import sun.tools.jar.resources.jar;
import util.LogUtils;

/*
 * 
原题　
		 Write a SQL query to get the second highest salary from the Employee table.
	
	+----+--------+
	| Id | Salary |
	+----+--------+
	| 1  | 100    |
	| 2  | 200    |
	| 3  | 300    |
	+----+--------+
	
	For example, given the above Employee table, the query should return 200 as the second highest salary. If there is no second highest salary, then the query should return null.
	
	+---------------------+
	| SecondHighestSalary |
	+---------------------+
	| 200                 |
	+---------------------+
	
	Seen this question in a real interview before?  

题目大意
	编写一个SQL查询获取雇员表中的第二高的薪水值。

	例如，上表中的第二高薪水为200.如果没有第二高薪水，查询应该返回null。
解题思路
	这道题让我们找表中某列第二大的数，这道题有很多种解法，
	先来看一种使用Limit和Offset两个关键字的解法，MySQL中Limit后面的数字限制了我们返回数据的个数，
	Offset是偏移量，那么如果我们想找第二高薪水，我们首先可以先对薪水进行降序排列，然后我们将Offset设为1，
	那么就是从第二个开始，也就是第二高薪水，然后我们将Limit设为1，就是只取出第二高薪水，如果将Limit设为2，那么就将第二高和第三高薪水都取出来：
	
	法二：找两次最大值就是第二大值
	select MAX(Salary ) as SecondHighestSalary  
	from Employee 
	where Salary NOT IN (
	    select MAX(Salary ) from Employee 
	) 
 * @Date 2017-09-14 23：43
 */
public class _176_Second_Highest_Salary {
	
	
    
	public static void main(String[] args) {

	}

}
